/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.tesis2.pucp.Seguridad.Controlador;

import com.tesis2.pucp.Envio.Controlador.*;
import com.tesis2.pucp.Envio.DAO.HorarioDAO;
import com.tesis2.pucp.Envio.Vista.BuscarTurnoGUI;
import com.tesis2.pucp.Envio.Vista.TurnoGUI;
import com.tesis2.pucp.Modelo.TesisHorario;
import com.tesis2.pucp.Modelo.TesisPerfil;
import com.tesis2.pucp.Seguridad.DAO.PerfilDAO;
import com.tesis2.pucp.Seguridad.Vista.BuscarPerfilGUI;
import com.tesis2.pucp.Seguridad.Vista.PerfilGUI;
import com.tesis2.pucp.Util.Valores;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;


/**
 *
 * @author jorge
 */
public class BuscarPerfilControlador {
    private PerfilDAO m;
    private BuscarPerfilGUI buscarPerfilView;
    private ArrayList<TesisPerfil> lstPerfil;
        
    public BuscarPerfilControlador(PerfilDAO dao, BuscarPerfilGUI v){
        m = dao;
        buscarPerfilView = v;
        buscarPerfilView.addBuscarListener(new listarUsuarios() );
        buscarPerfilView.addEditarListener(new editarUsuarioListener(this));
        buscarPerfilView.addNuevoListener(new crearHorarioListener(this));
        buscarPerfilView.addLimpiarListener(new limpiarListener());
        buscarPerfilView.addELiminarListener(new eliminarListener());
        buscarPerfilView.addActivarListener(new activarListener()); 
        
    }

    public void listarResultados(){
        lstPerfil = m.listarPerfil();               
        buscarPerfilView.llenaGrilla(lstPerfil);        
    }
    
    class listarUsuarios implements ActionListener
    {
        @Override
        public void actionPerformed(ActionEvent e) {
            listarResultados();
        }
    }
        
    class crearHorarioListener implements ActionListener {
        
        private BuscarPerfilControlador buc;
        public crearHorarioListener(BuscarPerfilControlador buscarHorario){
            buc=buscarHorario;
        }
                
        @Override
        public void actionPerformed(ActionEvent e) {
            PerfilGUI p = new PerfilGUI(buscarPerfilView.getPadre(), true);
            PerfilControlador c = new PerfilControlador (m,p,buc,null);
            p.setVisible(true);
        }
    
    }    
    
    class editarUsuarioListener implements ActionListener {
        
        private BuscarPerfilControlador buc;
        public editarUsuarioListener(BuscarPerfilControlador buscarvehiculo){
            buc=buscarvehiculo;
        }
        @Override
        public void actionPerformed(ActionEvent e) {            
            int sel=buscarPerfilView.getFilaSel();
            if (sel!=-1){
                PerfilGUI p = new PerfilGUI(buscarPerfilView.getPadre(), true);
                TesisPerfil u = lstPerfil.get(sel);                
                PerfilControlador c = new PerfilControlador(m,p,buc,u);
                p.setVisible(true);                
            }
        }
    
    } 
        
    class limpiarListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            buscarPerfilView.LimpiarDatos();
        }        
    }    
    
    class eliminarListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            int sel=buscarPerfilView.getFilaSel();
            if (sel!=-1){
                if (buscarPerfilView.solicitarConfirmacion("¿Desea inactivar este perfil?")==0){
                    TesisPerfil u = lstPerfil.get(sel); 
                    u.setEstado(2);
                    m.guardarPerfil(u);
                    buscarPerfilView.mostrarAviso("Se inactivó el perfil con éxito");
                    listarResultados();
                }
            }
            else{
                buscarPerfilView.mostrarError("Debe seleccionar un perfil");
            }
        }        
    }       
    
    class activarListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            int sel=buscarPerfilView.getFilaSel();
            if (sel!=-1){
                if (buscarPerfilView.solicitarConfirmacion("¿Desea reactivar este perfil?")==0){                
                    TesisPerfil u = lstPerfil.get(sel);
                    u.setEstado(1);
                    m.guardarPerfil(u);
                    buscarPerfilView.mostrarAviso("Se reactivó el vehículo con éxito");
                    listarResultados();
                }
            }
            else{
             buscarPerfilView.mostrarError("Debe seleccionar un vehículo");   
            }               
        }        
    }       
}
